#!/bin/bash

cvc4=./cvc4
bench="$1"

file=${bench##*/}
filename=${file%.*}

echo "------- cvc4-fnt casc j7 : $bench at $2..."

# use: trywith [params..]
# to attempt a run.  If an SZS ontology result is printed, then
# the run script terminates immediately.  Otherwise, this
# function returns normally.
function trywith {
  limit=$1; shift;
  echo "--- Run $@ at $limit...";
  (ulimit -S -t "$limit";$cvc4 --lang=tptp --no-checking --no-interactive --dump-models --produce-models --force-no-limit-cpu-while-dump "$@" $bench) 2>/dev/null |
  (read w1 w2 w3 result w4 w5;
  case "$result" in
  Satisfiable) echo "$w1 $w2 $w3 $result $w4 $w5";cat;exit 0;;
  CounterSatisfiable) echo "$w1 $w2 $w3 $result $w4 $w5";cat;exit 0;;
  esac; exit 1)
  if [ ${PIPESTATUS[1]} -eq 0 ]; then exit 0; fi
}
function finishwith {
  echo "--- Run $@...";
  $cvc4 --lang=tptp --no-checking --no-interactive --dump-models --produce-models --force-no-limit-cpu-while-dump "$@" $bench
}

trywith 30 --finite-model-find --sort-inference --uf-ss-fair
trywith 30 --finite-model-find --mbqi=gen-ev --uf-ss-totality --decision=internal --sort-inference --uf-ss-fair
trywith 15 --finite-model-find --disable-uf-ss-min-model --sort-inference --uf-ss-fair
trywith 60 --finite-model-find --mbqi=abs --pre-skolem-quant --sort-inference --uf-ss-fair
finishwith --finite-model-find --mbqi=abs --pre-skolem-quant --sort-inference --uf-ss-fair --mbqi-one-inst-per-round
# echo "% SZS status" "GaveUp for $filename"
